package model

import (
	"jgt-oper/src/schema"
)

// IAuthCode 认证码管理
type IAuthCode interface {
	// 查询分页数据
	QueryPage(params schema.AuthCodeQueryParam, pageIndex, pageSize uint) (int64, []*schema.AuthCodeQueryResult, error)
	// 查询历史分页数据
	QueryHistoryPage(params schema.AuthHistoryQueryParam, pageIndex, pageSize uint) (int64, []*schema.AuthHistoryQueryResult, error)
	// 精确查询数据
	Get(recordID string) (*schema.AuthCode, error)
	// 检查验证码是否存在
	CheckCode(code string) (bool, error)
	// 根据验证码获取数据
	GetByCode(code string) (*schema.AuthCode, error)
	// 创建数据
	Create(item *schema.AuthCode) error
	// 更新数据
	Update(recordID string, info map[string]interface{}) error
	// 删除数据
	Delete(recordID string) error
	// 创建历史数据
	CreateHistory(item *schema.AuthHistory) error
	// 递增使用次数
	IncUsedNumber(recordID string) error
}
